/*
 * @Author: Trae AI
 * @Date: 2025-03-22
 * @Description: 地图配置文件，用于多地图系统
 */

/**
 * 地图入口点接口
 * 定义地图之间的连接点
 */
// 地图入口点配置
export interface MapPortal {
    id: string;                  // 入口点ID;
    targetMapId: string;           // 目标地图ID
    position: { x: number, y: number };  // 入口点位置
    targetPosition: { x: number, y: number }; // 目标位置
    promptText?: string;          // 提示文本
    triggerRadius?: number;       // 触发半径
    size?: { width: number, height: number }; // 入口点大小

}

/**
 * 地图配置接口
 */
export interface MapConfig {
    /** 地图唯一ID */
    id: string;
    /** 地图名称 */
    name: string;
    /** 地图预制体路径 */
    prefabPath: string;
    /** 地图受伤率 */
    woundedRate:number,
    /** 地图大小 */
    size: { width: number, height: number };
    /** 地图入口点列表 */
    portals: MapPortal[];
    /** 地图背景音乐 */
    bgm?: string;
    /** 地图类型 (大地图/小地图) */
    type: 'main' | 'sub';
    /** 地图描述 */
    description?: string;
}

/**
 * 地图配置数据
 */
export class MapConfigs {
    /** 所有地图配置 */
    public static readonly MAPS: { [key: string]: MapConfig } = {
        // 大地图
        '1001': {
            id: '1001',
            name: '主城区',
            prefabPath: 'prefab/earthquake/County.lh',
            size: { width: 2048, height: 2304 },
            type: 'main',
            woundedRate: 0.3,

            description: '主要城区地图，包含多个建筑和设施',
            portals: [
                {
                    id: 'portal_to_hospital',
                    position: { x: 1500, y: 1500 },
                    targetMapId: 'hospital_map',
                    targetPosition: { x: 100, y: 100 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键进入医院'
                },
                {
                    id: 'portal_to_school',
                    position: { x: 800, y: 2000 },
                    targetMapId: 'school_map',
                    targetPosition: { x: 100, y: 100 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键进入学校'
                }
            ]
        },

        // 医院小地图
        '1003': {
            id: '1002',
            name: '雨林',
            prefabPath: 'prefab/earthquake/Rainforest.lh',
            size: { width: 2048, height: 1536 },
            type: 'sub',
            woundedRate: 0.1,
            description: '雨林',
            portals: [
                {
                    id: 'portal_to_main',
                    position: { x: 100, y: 100 },
                    targetMapId: 'main_map',
                    targetPosition: { x: 1500, y: 1500 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键返回主城区'
                }
            ]
        },

        // 学校小地图
        '1002': {
            id: '1003',
            name: '乡村',
            prefabPath: 'prefab/earthquake/Town.lh',
            size: { width: 2048, height: 1536 },
            type: 'sub',
            woundedRate: 0.6,
            description: '乡村',
            portals: [
                {
                    id: 'portal_to_main',
                    position: { x: 100, y: 100 },
                    targetMapId: 'main_map',
                    targetPosition: { x: 800, y: 2000 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键返回主城区'
                }
            ]
        },
        '1004': {
            id: '1004',
            name: '主城区',
            prefabPath: 'prefab/earthquake/County.lh',
            size: { width: 2048, height: 2304 },
            type: 'main',
            woundedRate: 0.3,

            description: '主要城区地图，包含多个建筑和设施',
            portals: [
                {
                    id: 'portal_to_hospital',
                    position: { x: 1500, y: 1500 },
                    targetMapId: 'hospital_map',
                    targetPosition: { x: 100, y: 100 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键进入医院'
                },
                {
                    id: 'portal_to_school',
                    position: { x: 800, y: 2000 },
                    targetMapId: 'school_map',
                    targetPosition: { x: 100, y: 100 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键进入学校'
                }
            ]
        },

        // 医院小地图
        '1005': {
            id: '1005',
            name: '雨林',
            prefabPath: 'prefab/earthquake/Rainforest.lh',
            size: { width: 2048, height: 2304 },
            type: 'sub',
            woundedRate: 0.1,
            description: '雨林',
            portals: [
                {
                    id: 'portal_to_main',
                    position: { x: 100, y: 100 },
                    targetMapId: 'main_map',
                    targetPosition: { x: 1500, y: 1500 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键返回主城区'
                }
            ]
        },

        // 学校小地图
        '1006': {
            id: '1006',
            name: '乡村',
            prefabPath: 'prefab/earthquake/Town.lh',
            size: { width: 2048, height: 1536 },
            type: 'sub',
            woundedRate: 0.6,
            description: '乡村',
            portals: [
                {
                    id: 'portal_to_main',
                    position: { x: 100, y: 100 },
                    targetMapId: 'main_map',
                    targetPosition: { x: 800, y: 2000 },
                    size: { width: 100, height: 100 },
                    promptText: '按空格键返回主城区'
                }
            ]
        }
    };

    /**
     * 获取地图配置
     * @param mapId 地图ID
     * @returns 地图配置
     */
    public static getMapConfig(mapId: string): MapConfig | null {
        return this.MAPS[mapId] || null;
    }






}